package com.easthome.utils;

import org.junit.Test;
import redis.clients.jedis.Jedis;
import redis.clients.jedis.JedisPool;
import redis.clients.jedis.JedisPoolConfig;

import java.util.ResourceBundle;

/*
自定义的redis数据库的连接池工具类
 */
public class RedisConnectionPool {
    private  static JedisPool jedisPool;

    static {
//Resource
        ResourceBundle bundle =ResourceBundle.getBundle("jedispool");

        Integer maxTotal = Integer.parseInt( bundle.getString("jedis.maxTotal")) ;
        Integer maxIdle = Integer.parseInt( bundle.getString("jedis.maxIdle"));
        Integer minIdle = Integer.parseInt( bundle.getString("jedis.minIdle")) ;
        String host = bundle.getString("jedis.host");
        Integer port = Integer.parseInt( bundle.getString("jedis.port")) ;

        JedisPoolConfig poolConfig=new JedisPoolConfig();


        poolConfig.setMaxTotal(maxTotal);
        poolConfig.setMaxIdle(maxIdle);
        poolConfig.setMinIdle(minIdle);

        jedisPool=new JedisPool(poolConfig,host,port);
    }

    @Test
    public static Jedis getJedis(){
        return jedisPool.getResource();
    }



    /**
     * 静态方法：直接返回练级对象Jedis
     * 连接池相关的类：
     * JedisPool 连接池对象
     * JedisPoolConfig 连接池数据的配置对象
     * 读取配置文件 jedispool.properties 获取配置参数，创建连接池对象
     * java.util.ResourceBundle 专门设计读取properties文件
     * ResourceBundle 不能直接 new 对象，静态方法获取对象
     */
//    public static Jedis getJedis(){
//        //Resource
//        ResourceBundle bundle =ResourceBundle.getBundle("jedispool");
//
//        Integer maxTotal = Integer.parseInt( bundle.getString("jedis.maxTotal")) ;
//        Integer maxIdle = Integer.parseInt( bundle.getString("jedis.maxIdle"));
//        Integer minIdle = Integer.parseInt( bundle.getString("jedis.minIdle")) ;
//        String host = bundle.getString("jedis.host");
//        Integer port = Integer.parseInt( bundle.getString("jedis.port")) ;
//
//
//        JedisPoolConfig poolConfig=new JedisPoolConfig();
//
//
//        poolConfig.setMaxTotal(maxTotal);
//        poolConfig.setMaxIdle(maxIdle);
//        poolConfig.setMinIdle(minIdle);
//
//        JedisPool jedisPool=new JedisPool(poolConfig,host,port);
//
//        return jedisPool.getResource();
//    }

    /**
    public static Jedis getJedis(){
        //创建配置对象
        JedisPoolConfig poolConfig=new JedisPoolConfig();
        //设置参数
        poolConfig.setMaxTotal(100);//设置连接池中连接对象 Jedis对象的最大个数
        poolConfig.setMinIdle(10);//最小空闲个数
        poolConfig.setMaxIdle(50);//最大空闲个数
        //创建连接池对象
        JedisPool jedisPool=new JedisPool(poolConfig,"192.168.111.128",6379);

        return jedisPool.getResource();
    }
     */
}
